Part of the Politics series |
Electoral methods |
---|
Single-winner |
Multiple-winner |
Proxy voting |
Random selection |
Social choice theory |
Politics portal |
The Schulze method is a voting system developed in 1997 by Markus Schulze that selects a single winner using votes that express preferences. The method can also be used to create a sorted list of winners. The Schulze method is also known as Schwartz Sequential Dropping (SSD), Cloneproof Schwartz Sequential Dropping (CSSD), the Beatpath Method, Beatpath Winner, Path Voting, and Path Winner.
The Schulze method is a Condorcet method, which means the following: if there is a candidate who is preferred over every other candidate in pairwise comparisons, then this candidate will be the winner when the Schulze method is applied.
Currently, the Schulze method is the most widespread Condorcet method (list). The Schulze method is used by several organizations including Wikimedia, Debian, Gentoo, and Software in the Public Interest.
The output of the Schulze method (defined below) gives an ordering of candidates. Therefore, if several positions are available, the method can be used for this purpose without modification, by letting the k top-ranked candidates win the k available seats. Furthermore, for proportional representation elections, a single transferable vote variant has been proposed.
Contents |
The input to the Schulze method is the same as for other preferential single-winner election methods: each voter must furnish an ordered preference list on candidates where ties are allowed.
One typical way for voters to specify their preferences on a ballot (see left) is as follows. Each ballot lists all the candidates, and each voter ranks this list in order of preference using numbers: the voter places a '1' beside the most preferred candidate(s), a '2' beside the second-most preferred, and so forth. Each voter may optionally:
Let d[V,W] be the number of voters who prefer candidate V to candidate W.
A path from candidate X to candidate Y of strength p is a sequence of candidates C(1),...,C(n) with the following properties:
p[A,B], the strength of the strongest path from candidate A to candidate B, is the maximum value such that there is a path from candidate A to candidate B of that strength. If there is no path from candidate A to candidate B at all, then p[A,B] = 0.
Candidate D is better than candidate E if and only if p[D,E] > p[E,D].
Candidate D is a potential winner if and only if p[D,E] ≥ p[E,D] for every other candidate E.
It can be proven that p[X,Y] > p[Y,X] and p[Y,Z] > p[Z,Y] together imply p[X,Z] > p[Z,X].[1]:§4.1 Therefore, it is guaranteed (1) that the above definition of "better" really defines a transitive relation and (2) that there is always at least one candidate D with p[D,E] ≥ p[E,D] for every other candidate E.
Consider the following example, in which 45 voters rank 5 candidates.
First, we compute the pairwise preferences. For example, in comparing A and B pairwise, there are 5+5+3+7=20 voters who prefer A to B, and 8+2+7+8=25 voters who prefer B to A. So d[A, B] = 20 and d[B, A] = 25. The full set of pairwise preferences is:
d[*,A] | d[*,B] | d[*,C] | d[*,D] | d[*,E] | |
---|---|---|---|---|---|
d[A,*] | 20 | 26 | 30 | 22 | |
d[B,*] | 25 | 16 | 33 | 18 | |
d[C,*] | 19 | 29 | 17 | 24 | |
d[D,*] | 15 | 12 | 28 | 14 | |
d[E,*] | 23 | 27 | 21 | 31 |
To help visualize the strongest paths, the diagram on the right-hand side shows an arrow from A to B with label d[A, B], in the style of a directed graph. (To avoid cluttering the diagram we only draw the majority of voters)
Recall that the strength of a path is the strength of its weakest link. One example of computing the strongest path strength is p[B, D] = 33: the strongest path from B to D is the direct path (B, D) which has strength 33. For contrast, let us also compute p[A, C]. The strongest path from A to C is not the direct path (A, C) of strength 26, rather the strongest path is the indirect path (A, D, C) which has strength min(30, 28) = 28.
For each pair of candidates X and Y, the following table shows the strongest path from candidate X to candidate Y in red, with the weakest link underlined.
... to A | ... to B | ... to C | ... to D | ... to E | ||
---|---|---|---|---|---|---|
from A ... | A-(30)-D-(28)-C-(29)-B | A-(30)-D-(28)-C | A-(30)-D | A-(30)-D-(28)-C-(24)-E | from A ... | |
from B ... | B-(25)-A | B-(33)-D-(28)-C | B-(33)-D | B-(33)-D-(28)-C-(24)-E | from B ... | |
from C ... | C-(29)-B-(25)-A | C-(29)-B | C-(29)-B-(33)-D | C-(24)-E | from C ... | |
from D ... | D-(28)-C-(29)-B-(25)-A | D-(28)-C-(29)-B | D-(28)-C | D-(28)-C-(24)-E | from D ... | |
from E ... | E-(31)-D-(28)-C-(29)-B-(25)-A | E-(31)-D-(28)-C-(29)-B | E-(31)-D-(28)-C | E-(31)-D | from E ... | |
... to A | ... to B | ... to C | ... to D | ... to E |
p[*,A] | p[*,B] | p[*,C] | p[*,D] | p[*,E] | |
---|---|---|---|---|---|
p[A,*] | 28 | 28 | 30 | 24 | |
p[B,*] | 25 | 28 | 33 | 24 | |
p[C,*] | 25 | 29 | 29 | 24 | |
p[D,*] | 25 | 28 | 28 | 24 | |
p[E,*] | 25 | 28 | 28 | 31 |
Now we can determine the output of the Schulze method. Comparing A and B for example, since 28 = p[A,B] > p[B,A] = 25, for the Schulze method candidate A is better than candidate B. Another example is that 31 = p[E,D] > p[D,E] = 24, so candidate E is better than candidate D. Continuing in this way we get the Schulze ranking is E > A > C > B > D, and E wins. In other words, E wins since p[E,X] ≥ p[X,E] for every other candidate X.
The only difficult step in implementing the Schulze method is computing the strongest path strengths. However, this is a well-known problem in graph theory sometimes called the widest path problem. One simple way to compute the strengths therefore is a variant of the Floyd–Warshall algorithm. The following pseudocode illustrates the algorithm.
# Input: d[i,j], the number of voters who prefer candidate i to candidate j.
# Output: p[i,j], the strength of the strongest path from candidate i to candidate j.
for i from 1 to C
for j from 1 to C
if (i ≠ j) then
if (d[i,j] > d[j,i]) then
p[i,j] := d[i,j]
else
p[i,j] := 0
for i from 1 to C
for j from 1 to C
if (i ≠ j) then
for k from 1 to C
if (i ≠ k and j ≠ k) then
p[j,k] := max ( p[j,k], min ( p[j,i], p[i,k] ) )
This algorithm is efficient, and has running time proportional to C3 where C is the number of candidates. (This does not account for the running time of computing the d[*,*] values, which if implemented in the most straightforward way, takes time proportional to C2 times the number of voters.)
When we allow users to have ties in their preferences, the outcome of the Schulze method naturally depends on how we interpret these ties in defining d[*,*]. Two natural choices are that d[A, B] represents either the number of voters who strictly prefer A to B (A>B), or the margin of (voters with A>B) minus (voters with B>A). But no matter how the ds are defined, the Schulze ranking has no cycles, and assuming the ds are unique it has no ties.[1]
Although ties in the Schulze ranking are unlikely,[2] they are possible. Schulze's original paper[1] proposed breaking ties in accordance with a voter selected at random, and iterating as needed.
An alternative, slower, way to describe the winner of the Schulze method is the following procedure:
The Schulze method satisfies the following criteria:
Since the Schulze method satisfies the Condorcet criterion, it automatically fails the following criteria:
Likewise, since the Schulze method is not a dictatorship and agrees with unanimous votes, Arrow's Theorem implies it fails the criterion
The following table compares the Schulze method with other preferential single-winner election methods:
Monotonic | Condorcet | Majority | Condorcet loser | Majority loser | Mutual majority | Smith | ISDA | Clone independence | Reversal symmetry | Polynomial time | Participation, Consistency | Resolvability | |
Schulze | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Ranked pairs | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes |
Copeland | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | No | No |
Kemeny-Young | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | No | No | Yes |
Nanson | No | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | No | Yes |
Baldwin | No | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | No | Yes |
Instant-runoff voting | No | No | Yes | Yes | Yes | Yes | No | No | Yes | No | Yes | No | Yes |
Borda | Yes | No | No | Yes | Yes | No | No | No | No | Yes | Yes | Yes | Yes |
Bucklin | Yes | No | Yes | No | Yes | Yes | No | No | No | No | Yes | No | Yes |
Coombs | No | No | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | Yes |
MiniMax | Yes | Yes | Yes | No | No | No | No | No | No | No | Yes | No | Yes |
Plurality | Yes | No | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes |
Anti-plurality | Yes | No | No | No | Yes | No | No | No | No | No | Yes | Yes | Yes |
Contingent voting | No | No | Yes | Yes | Yes | No | No | No | No | No | Yes | No | Yes |
Sri Lankan contingent voting | No | No | Yes | No | No | No | No | No | No | No | Yes | No | Yes |
Supplementary voting | No | No | Yes | No | No | No | No | No | No | No | Yes | No | Yes |
Dodgson | No | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes |
The main difference between the Schulze method and the ranked pairs method (both of which have tick the same boxes in the above table) can be seen in this example:
Suppose the MinMax score of a set X of candidates is the strength of the strongest pairwise win of a candidate A ∉ X against a candidate B ∈ X. Then the Schulze method, but not the ranked pairs method, guarantees that the winner is always a candidate of the set with minimum MinMax score.[1]:§4.8 So, in some sense, the Schulze method minimizes the strongest pairwise win that has to be overturned when determining the winner.
The Schulze method was developed by Markus Schulze in 1997. It was first discussed in public mailing lists in 1997–1998[4] and in 2000.[5] Subsequently, Schulze method users included Software in the Public Interest (2003),[6] Debian (2003),[7] Gentoo (2005),[8] TopCoder (2005),[9] Wikimedia (2008),[10] KDE (2008),[11] the Free Software Foundation Europe (2008),[12] the Pirate Party of Sweden (2009),[13] and the Pirate Party of Germany (2010).[14] In the French Wikipedia, the Schulze method was one of two multi-candidate methods approved by a majority in 2005,[15] and it has been used several times.[16]
In 2011, Schulze published the method in the academic journal Social Choice and Welfare.[1]
The Schulze method is not currently used in parliamentary elections. However, it has been used for parliamentary primaries in the Swedish Pirate Party. It is also starting to receive support in other public organizations. Organizations which currently use the Schulze method are: